PHP - Laravel 设置 cookie

一、简介
  • cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,能够创建并取回 cookie 的值。

  • Laravel 框架为了安全,它的 cookie 是加密的。

二、cookie()
  • 属性参数分析

    cookie($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $sameSite);
    
    参数说明举例
    namecookie的名字使用 $_COOKIE[‘cookiename’] 调用名为 cookiename 的 cookie。
    valuecookie的值,存放在客户端,不要存放敏感数据假定 name 是 ‘cookiename’,可以通过$_COOKIE[‘cookiename’] 取得其值。
    minutesCookie 过期的时间(分钟)。这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之,通常用 time() 函数再加上秒数来设定 cookie 的失效期。或者用mktime()来实现。time()+60*60*24*30 将设定 cookie 30 天后失效。如果未设定,cookie 将会在会话结束后(一般是浏览器关闭)失效。
    pathCookie 在服务器端的有效路径。如果该参数设为 ‘/’ 的话,cookie 就在整个 domain 内有效,如果设为 ‘/foo/’,cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。默认值为设定 cookie 的当前目录。
    domain该 cookie 有效的域名。要使 cookie 能在如 example.com 域名下的所有子域都有效的话,该参数应该设为 ‘.example.com’。虽然 . 并不必须的,但加上它会兼容更多的浏览器。如果该参数设为www.example.com 的话,就只在 www 子域内有效。细节见Cookie 规范中的 tail matching。
    secure指明 cookie 是否仅通过安全的 HTTPS 连接传送。当设成 TRUE 时,cookie 仅在安全的连接中被设置。默认值为FALSE。0 或 1
    httpOnly是否只支持 HTTP 请求0 或 1
    sameSiteChrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。参考地址 http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html
  • 不是特殊情况,一般使用前 4 个参数就够了:

    cookie($name, $value, $minutes);
    cookie($name, $value, $minutes, $path);
      
    cookie('dzm', 'dzm123456', 1);
    // '/' 为根目录,不填默认就是根目录
    cookie('dzm', 'dzm123456', 1, '/');
    
三、Laravel 使用 cookie()
  • 测试案例

    Route::get('req', function () {
        // 设置 cookie,1分钟有效期
        return response('我设置了Cookie')->cookie('name', 'dzm', 1);
        // 获取 cookie
        return request() ->cookie('name');
    });
    

    过期时间到了则自动删除:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值